package edu.eam.paii.proyecto.dao;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;

import edu.eam.paii.proyecto.entidades.Consignacion;
import edu.eam.paii.proyecto.entidades.Retiro;
import edu.eam.paii.proyecto.entidades.Tipo;
import edu.eam.paii.proyecto.entidades.Transaccion;
import edu.eam.paii.proyecto.entidades.Transferencia;
import edu.eam.paii.proyecto.entidades.TransferenciaCuentaCuenta;
import edu.eam.paii.proyecto.idao.TransaccionIDAO;

public class TransaccionDAO implements TransaccionIDAO {

	EntityManager em;
	
	
	
	public TransaccionDAO(EntityManager em) {
		super();
		this.em = em;
	}

	@Override
	public void crearTransferencia(Transferencia transferencia) {
		// TODO Auto-generated method stub
		em.persist(transferencia);
	}

	@Override
	public void crearTransferenciaCuentaCuenta(TransferenciaCuentaCuenta transC) {
		// TODO Auto-generated method stub
		em.persist(transC);
	}

	@Override
	public void crearConsignacion(Consignacion consignacion) {
		// TODO Auto-generated method stub
		em.persist(consignacion);
	}

	@Override
	public void crearRetiro(Retiro retiro) {
		// TODO Auto-generated method stub
		em.persist(retiro);
	}

	@Override
	public void updateTransferencia(Transferencia transferencia) {
		// TODO Auto-generated method stub
		em.merge(transferencia);
	}

	@Override
	public void updateTransferenciaCuentaCuenta(TransferenciaCuentaCuenta transC) {
		// TODO Auto-generated method stub
		em.merge(transC);
	}

	@Override
	public void updateConsignacion(Consignacion consignacion) {
		// TODO Auto-generated method stub
		em.merge(consignacion);
	}

	@Override
	public void updateRetiro(Retiro retiro) {
		// TODO Auto-generated method stub
		em.merge(retiro);
	}

	@Override
	public Transferencia buscarTransferencia(int transferencia) {
		// TODO Auto-generated method stub
		return em.find(Transferencia.class, transferencia);
	}

	@Override
	public TransferenciaCuentaCuenta buscarTransferenciaCuentaCuenta(
			int transC) {
		// TODO Auto-generated method stub
		return em.find(TransferenciaCuentaCuenta.class, transC);
	}

	@Override
	public Consignacion buscarConsignacion(int consignacion) {
		// TODO Auto-generated method stub
		return em.find(Consignacion.class, consignacion);
	}

	@Override
	public Retiro buscarRetiro(Retiro retiro) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Transferencia> listarTransferencia() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<TransferenciaCuentaCuenta> listarTransferenciaCuentaCuenta() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Consignacion> listarConsignacion() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Retiro> listarRetiro() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Transaccion> listarTransacciones() {
		// TODO Auto-generated method stub
	return	 	em.createNamedQuery("Transaccion.listar").getResultList();	
	
	}

	@Override
	public Tipo buscarTipoConsignacion(int tipo) {
		// TODO Auto-generated method stub
		return em.find(Tipo.class, tipo);
	}





	

}
